

local key = KEYS[1]
local noteId = ARGV[1]

-- 检查bitmap是否存在
-- 1 表示 Key 存在   0 表示 Key 不存在
local exists = redis.call('EXISTS',key)
if exists == 0 then
    return -1
end
-- 检查剩余过期时间（TTL）
local ttl = redis.call('TTL', key)
-- 如果 key 未设置过期时间（TTL = -1），则不续约
-- 如果 key 即将过期（TTL < 300 秒，即 5 分钟），则续约
if ttl > 0 and ttl < 300 then
    redis.call('EXPIRE', key, 600)  -- 续约10分钟
end

-- 或者少于多少直接返回走数据库

-- 检查是否已经点过赞啦redis 1 已经点赞，0 未点赞
local likeStatus = redis.call('R.GETBIT',key,noteId)
if likeStatus==0 then
    return 0
end
-- 取消点赞，设置 Value 值为 0
return redis.call('R.SETBIT', key, noteId, 0)
